﻿using System;
using System.Text;

namespace CPN.PJN.Silverlight.Common.Logging.Formatters
{
    /// <summary>
    /// Cette classe représente un formatage du log pour la sortie
    /// </summary>
    public class DefaultLogFormatter : LogFormatter
    {
        #region Format Method

        /// <summary>
        /// Cette méthode permet de formatter du log pour l'afficher
        /// </summary>
        /// <param name="categoryName">Nom de la catégorie</param>
        /// <param name="message">Message log</param>
        /// <param name="data">données supplémentaires à afficher</param>
        /// <returns>Message affiché</returns>
        public override string Format(string categoryName, object message, params object[] data)
        {
            var builder = new StringBuilder();
            builder.Append(message);
            if (data != null)
            {
                foreach (var item in data)
                {
                    builder.AppendLine(string.Format("Extended Data : {0}", Convert.ToString(item)));
                }
            }
            return builder.ToString();
        } 

        #endregion
    }
}
